Durant ce TD, nous avons fait plusieurs exercices sur les tableaux, dont certains ne sont malheureusement pas corrigés ici, donc j'espère que vous avez pris des notes !

Je vous ai également expliqué comment utiliser doctest sur vos installations Python respectives.

Pour utiliser doctest avec Python IDLE import doctest # importe le module doctest dans votre code, c'est donc l'équivalent de python -m doctest doctest.testmod() # dis à doctest d'exécuter tous les tests du fichier

Vous pouvez mettres des Flags dans les parenthèses de testmod() pour personnaliser l'affichage des résultats. Cf. la doc de doctest.


In [1]:
%load_ext doctestmagic

In [2]:
# -*- coding: utf-8 -*-
# Exercice : vérifier que deux tableaux sont égaux 
def tableaux_egaux(a, b):
    """
    :entrée a: tableau de float
    :entrée b: tableau de float
    :sortie te: bool
    :post-cond: te est True si et seulement si len(a) == len(b) et
                ∀ i ∈ [0;len(a)[, a[i] == b[i]

    >>> tableaux_egaux([1.0, 2.0, 4.0, 3.0], [1.0, 2.0, 4.0, 3.0])
    True
    >>> tableaux_egaux([1.0, 2.0, 4.0, 3.0], [9.0, 2.0, 4.0, 3.0])
    False
    >>> tableaux_egaux([1.0, 2.0, 4.0, 3.0], [1.0, 2.0, 4.0])
    False
    >>> tableaux_egaux([1.0, 2.0, 4.0], [1.0, 2.0, 4.0, 3.0])
    False
    """

    te = True
    if len(a) == len(b):
        for i in range(len(a)):
            if a[i] != b[i]:
                te = False
    else:
        te = False

    return te


# Exercice : vérifier qu'un tableau est préfixe d'un autre. 
def tableaux_prefixe(a, b):
    '''
    :entrée a: tableau de float
    :entrée b: tableau de float
    :sortie te: bool
    :post-cond: te est True si et seulement si len(a) >= len(b) et
                ∀ i ∈ [0;len(b)[, a[i] == b[i]

    >>> tableaux_prefixe([1.0, 2.0, 4.0, 3.0], [1.0, 2.0, 4.0, 3.0])
    True
    >>> tableaux_prefixe([1.0, 2.0, 4.0, 3.0], [9.0, 2.0, 4.0, 3.0])
    False
    >>> tableaux_prefixe([1.0, 2.0, 4.0, 3.0], [1.0, 2.0, 4.0])
    True
    >>> tableaux_prefixe([1.0, 2.0, 4.0], [1.0, 2.0, 4.0, 3.0])
    False
    '''

    te = True
    if len(a)>=len(b):
        for i in range (0, len(b)):
            if a[i]!=b[i]:
                te = False
    else:
        te = False
    return te

%doctest tableaux_prefixe
%doctest tableaux_egaux


Ran 4 tests in 1 objects, 0 tests failed.
Ran 4 tests in 1 objects, 0 tests failed.

In [ ]: